package com.dji.sample.map.service;

import com.dji.sdk.cloudapi.map.GetMapElementsResponse;

import java.util.List;
import java.util.Optional;

/**
 * 组服务接口
 * 定义了对工作空间中地图组元素进行查询操作的方法
 *
 * @author sean
 * @version 0.2
 * @date 2021/11/29
 */
public interface IGroupService {

    /**
     * 根据工作空间ID查询所有组信息
     * 如果组ID不存在，则不添加此过滤条件
     *
     * @param workspaceId 工作空间ID
     * @param groupId 组ID，可为空，为空时查询所有组
     * @param isDistributed 用于定义组是否需要分发，默认为true
     * @return 返回地图元素响应列表，包含组信息
     */
    List<GetMapElementsResponse> getAllGroupsByWorkspaceId(String workspaceId, String groupId, Boolean isDistributed);

    /**
     * 获取此工作空间下的自定义飞行区域组
     *
     * @param workspaceId 工作空间ID
     * @return 返回包含自定义飞行区域组信息的Optional对象，如果未找到则为空
     */
    Optional<GetMapElementsResponse> getCustomGroupByWorkspaceId(String workspaceId);
}